#ifndef _FENGINE_COLOR_RGB
#define _FENGINE_COLOR_RGB

#include "FEngineType.h"

namespace FEngine
{
	/**
	 * Represent a RGB color.
	 */ 
	class ColorRGB
	{

		public:
			
			unsigned char red;
			unsigned char green;
			unsigned char blue;

			
			ColorRGB();
			ColorRGB(const ColorRGB& _col);
			ColorRGB(unsigned char _r, unsigned char _g, unsigned char _b);
			ColorRGB(const Vector3& _col);
			ColorRGB(const Vector4& _col);
			~ColorRGB();
			
			ColorRGB& operator=(const ColorRGB& _col);
			ColorRGB& operator+=(const ColorRGB& _col);
			ColorRGB& operator-=(const ColorRGB& _col);
			bool operator==(const ColorRGB& _col) const;
			bool operator!=(const ColorRGB& _col) const;
			
			/**
			 * Return the RGB value in an Vector3.
			 * @return Vector3 containing the value of the color.
			 */
			Vector3 toVector3() const;
			
			/**
			 * Return the RGBA value in an Vector4.
			 * The alpha value is set to 255.
			 * @return Vector3 containing the value of the color.
			 */
			Vector4 toVector4() const;

			/**
			 * Return a vector4 containing the color value beween 0 and 1.0f.
			 * @return Vector4 representing the color for the shader.
			 */
			Vector4 toShaderFormat() const;
	};

} // namespace Engine

#endif
